package com.zdkj.subway.stm.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zdkj.common.core.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @author songtuo
 * @date 2020-07-14 11:52:58
 */
@Data
@TableName("sw_st_stock")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "车站车票库存日报表")
public class SwStStock extends BaseEntity<SwStStock> {
    private static final long serialVersionUID = 1L;

    /**
     * 唯一标识
     */
    @TableId
    @ApiModelProperty(value = "唯一标识")
    @ExcelProperty("序号")
    private Integer id;
    /**
     * 线路编码不能重复
     */
    @ApiModelProperty(value = "线路编码不能重复")
    @ExcelIgnore
    private String lineCode;
    /**
     * 车站编码不能重复
     */
    @ExcelIgnore
    @ApiModelProperty(value = "车站编码不能重复")
    private String stationCode;

    /**
     * 统计日期
     */
    @ApiModelProperty(value = "统计日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    //@ExcelProperty(value = "日期", converter = LocalDateConverter.class)
    //private LocalDate statisticsDate;
    @ExcelProperty(value = "日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date statisticsDate;
    /**
     * 票种
     */
    @ExcelProperty("票种")
    @ApiModelProperty(value = "票种英文缩写")
    //@HeaderToColumn(header = "票种",colhandlebysql = "SELECT SUB_EN_NAME FROM SW_PM_TICKET_CARD_TYPE_PARAM WHERE SUB_NAME=?")
    private String ticketTypeEn;
    /**
     * 车票
     */
    @ExcelProperty("车票")
    @ApiModelProperty(value = "车票英文缩写")
    //@HeaderToColumn(header = "车票",colhandlebysql = "SELECT MAIN_EN_NAME FROM SW_PM_TICKET_CARD_TYPE_PARAM WHERE MAIN_NAME=? limit 0,1")
    private String ticketTypeParamEn;
    /**
     * 上日结存
     */
    @ExcelProperty("上日结存（张）")
    @ApiModelProperty(value = "上日结存")
    private Integer balanceLastday;
    /**
     * 调入本站
     */
    @ExcelProperty("调入本站（张）")
    @ApiModelProperty(value = "调入本站")
    private Integer transferStation;
    /**
     * 调出本站
     */
    @ExcelProperty("调出本站（张）")
    @ApiModelProperty(value = "调出本站")
    private Integer leaveStation;
    /**
     * 配入本站
     */
    @ExcelProperty("配入本站（张）")
    @ApiModelProperty(value = "配入本站")
    private Integer distributionStation;
    /**
     * AGM回收
     */
    @ExcelProperty("AGM回收（张）")
    @ApiModelProperty(value = "AGM回收")
    private Integer agmRecovery;
    /**
     * 票房售出
     */
    @ExcelProperty("票房售出（张）")
    @ApiModelProperty(value = "票房售出")
    private Integer boxOfficeSale;

	/**
     * 车票替换
     */
    @ExcelProperty("车票替换（张）")
    @ApiModelProperty(value = "车票替换")
    private Integer ticketReplace;
    /**
     * TVM售出
     */
    @ExcelProperty("TVM售出（张）")
    @ApiModelProperty(value = "TVM售出")
    private Integer tvmSellOut;
    /**
     * 网络售出
     */
    @ExcelProperty("网络售出（张）")
    @ApiModelProperty(value = "网络售出")
    private Integer internetSales;
    /**
     * BOM废票
     */
    @ExcelProperty("BOM废票（张）")
    @ApiModelProperty(value = "BOM废票")
    private Integer bomScrapTicket;
    /**
     * TVM废票
     */
    @ExcelProperty("TVM废票（张）")
    @ApiModelProperty(value = "TVM废票")
    private Integer tvmScrapTicket;
    /**
     * AGM废票
     */
    @ExcelProperty("AGm废票（张）")
    @ApiModelProperty(value = "AGM废票")
    private Integer agmScrapTicket;
    /**
     * 网络机废票
     */
    @ExcelProperty("网络机废票（张）")
    @ApiModelProperty(value = "网络机废票")
    private Integer networkScrapTicket;
    /**
     * 废票小计
     */
    @ExcelProperty("废票小计")
    @ApiModelProperty(value = "废票小计")
    private Integer scrapSubtotal;
    /**
     * 上交车票
     */
    @ExcelProperty("上交车票（张）")
    @ApiModelProperty(value = "上交车票")
    private Integer handTicket;
    /**
     * 人工回收
     */
    @ExcelProperty("人工回收（张）")
    @ApiModelProperty(value = "人工回收")
    private Integer artificialRecovery;
    /**
     * 本日结存
     */
    @ExcelProperty("本日结存（张）")
    @ApiModelProperty(value = "本日结存")
    private Integer balanceToday;
    /**
     * 单程票SC数量
     */
    @ExcelProperty("单程票SC数量")
    @ApiModelProperty(value = "单程票SC数量")
    private Integer scDcpAmount;
    /**
     * 本日结存-单程票SC数量
     */
    @TableField(exist = false)
    @ExcelProperty("差异数量")
    @ApiModelProperty(value = "差异数量")
    private Integer diffCount;
    /**
     * 异常原因
     */
    @ApiModelProperty(value = "异常原因")
    @ExcelProperty("异常原因")
    private String diffCase;
    /**
     * 通知状态
     */
    @ApiModelProperty(value = "通知状态")
    @ExcelProperty("通知状态")
    private String confirmStatus;
    /**
     * 生成报表员工号
     */
    @ApiModelProperty(value = "生成报表员工号")
    @ExcelProperty("生成报表员工号")
    private String creatorJobNo;
    /**
     * 确认人ID
     */
    @ExcelProperty("确认人ID")
    @ApiModelProperty(value = "确认人ID")
    private Integer conformPersonId;
    /**
     * 确认人名称
     */
    @ApiModelProperty(value = "确认人名称")
    @ExcelProperty("确认人名称")
    private String conformPersonName;
    /**
     * 确认报表员工号
     */
    @ApiModelProperty(value = "确认报表员工号")
    @ExcelProperty("确认报表员工号")
    private String confirmPersonJobNo;
    
    /**
    * 报表修改状态：默认0\r\n0：关闭\r\n1：打开，打开时可以编辑，保存时并记录日志
    */
   @ApiModelProperty(value = "报表修改状态：默认0\\r\\n0：关闭\\r\\n1：打开，打开时可以编辑，保存时并记录日志")
   private String reportModifyStatus;


    /**
     * 生成报表日期
     */
    @ApiModelProperty(value = "生成日报表日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")   
    @ExcelIgnore 
	@TableField(exist = false)
    private Date generatteStatisticsDate;

    /**
     * 是否加入报表差错
     */
    @ApiModelProperty(value = "是否加入报表差错")
    private String isAddReprotError;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;
}
